package module.library.service;

import common.model.Entity.libraryEntity.Book;
import common.model.Entity.libraryEntity.BookItem;
import network.protocol.Response;

import java.util.List;

public interface BookQueryService {

    /**
     * 根据书名、作者或ISBN关键字进行模糊搜索
     *
     * @param keyword
     * @return
     */
    Response<List<Book>> searchBooksByField(String keyword, String searchType);

    /**
     * 根据图书ID获取某本书的详细信息
     *
     * @param isbn 图书id，图书的唯一标识
     * @return 匹配的图书对象，如果未找到则返回null
     */
    Response<Book> getBookDetails(String isbn);

    /**
     * 获取某本图书的所有副本信息  用来加载前端的馆藏信息
     *
     * @param isbn 图书 ID
     * @return 该图书的所有副本列表
     */
    Response<List<BookItem>> getBookItems(String isbn);

}
